The ever-increasing demand for high-quality audio video media has fueled the advent of audio and video storage and retrieval technology. In particular, one popular set of standards for audio and video compression is the MPEG (moving pictures experts group) standard. Today, there are several versions of the MPEG standard, each designed for different applications. Specifically, MPEG-2 is designed for high bandwidth applications such as broadcast television including high-definition television (HDTV). In order to listen and to view the content in an MPEG-2 transport stream, a system capable of encoding and decoding the compressed audio video data is essential.
A software encoder is designed to be optimal in an encoding scheme with a given CPU load to the normal input content bitstream. Sometimes the encoder spends too much time to complete the processing of a given frame when the input content bitstream characteristics exceed the predetermined complexity. This is called overrun. Under limited CPU cycle resources, overrun is unavoidable for a given software encoder. If during normal encoding mode, the overrun occurs, a real-time encoder should catch-up the overrun and should not skip any input data. The quality of a catch-up algorithm is related to: 1) how fast encoder can recover to normal mode, and 2) the quality of encoder output during catch-up mode.
What is required is a system and method for a software-based, overrun catch-up system that operates in real-time.